# Copyright (C) 2022. Huawei Technologies Co., Ltd. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

cmake_minimum_required(VERSION 3.10...3.20 FATAL_ERROR)
target_sources(Raul-Compiler PRIVATE
        training/compiler/WShape.h
        training/compiler/WorkflowPool.cpp
        training/compiler/Workflow.h
        training/compiler/Workflow.cpp
        training/compiler/WorkflowEager.h
        training/compiler/WorkflowEager.cpp
        training/compiler/WorkflowActions.h
        training/compiler/WorkflowBuilder.h
        training/compiler/WorkflowDB.cpp
        training/compiler/LayerBuilder.h
        training/compiler/LayerBuilder.cpp
        training/compiler/IntervalTree.h
        training/compiler/WorkflowDB.h
        training/compiler/IntervalTree.cpp
        training/compiler/WorkflowActions.cpp
        training/compiler/WorkflowPool.h
        training/compiler/Layers.h
        training/compiler/Compiler.h
        training/compiler/Compiler.cpp
        training/compiler/FrontendCompiler.h
        training/compiler/LayersResolver.h
        training/base/optimizers/Adadelta.cpp
        training/base/optimizers/Optimizer.h
        training/base/optimizers/LAMB.h
        training/base/optimizers/AdamW.h
        training/base/optimizers/AdamW.cpp
        training/base/optimizers/Adam.h
        training/base/optimizers/Ranger.cpp
        training/base/optimizers/Momentum.cpp
        training/base/optimizers/IOptimizer.h
        training/base/optimizers/Adagrad.h
        training/base/optimizers/Ranger.h
        training/base/optimizers/Optimizer.cpp
        training/base/optimizers/Adamax.h
        training/base/optimizers/Adamax.cpp
        training/base/optimizers/SGD.cpp
        training/base/optimizers/Adam.cpp
        training/base/optimizers/ASGD.h
        training/base/optimizers/SGD.h
        training/base/optimizers/Rprop.cpp
        training/base/optimizers/LAMB.cpp
        training/base/optimizers/Momentum.h
        training/base/optimizers/Adadelta.h
        training/base/optimizers/Nesterov.cpp
        training/base/optimizers/RMSprop.h
        training/base/optimizers/Adagrad.cpp
        training/base/optimizers/Nesterov.h
        training/base/optimizers/Rprop.h
        training/base/optimizers/RMSprop.cpp
        training/base/optimizers/regularizers/Regularizer.h
        training/base/optimizers/regularizers/strategies/L2.h
        training/base/optimizers/regularizers/strategies/L1.cpp
        training/base/optimizers/regularizers/strategies/IRegularizerStrategy.h
        training/base/optimizers/regularizers/strategies/L2.cpp
        training/base/optimizers/regularizers/strategies/L1.h
        training/base/optimizers/regularizers/Regularizer.cpp
        training/base/optimizers/ASGD.cpp
        training/base/optimizers/schedulers/LrScheduler.cpp
        training/base/optimizers/schedulers/LrScheduler.h
        training/base/optimizers/schedulers/strategies/Exponential.cpp
        training/base/optimizers/schedulers/strategies/StepOffset.cpp
        training/base/optimizers/schedulers/strategies/WarmUp.cpp
        training/base/optimizers/schedulers/strategies/ClipUpper.h
        training/base/optimizers/schedulers/strategies/WarmUp.h
        training/base/optimizers/schedulers/strategies/Lambda.h
        training/base/optimizers/schedulers/strategies/Base.cpp
        training/base/optimizers/schedulers/strategies/Base.h
        training/base/optimizers/schedulers/strategies/StepOffset.h
        training/base/optimizers/schedulers/strategies/Exponential.h
        training/base/optimizers/schedulers/strategies/Lambda.cpp
        training/base/optimizers/schedulers/strategies/ClipUpper.cpp
        training/base/optimizers/schedulers/strategies/ClipLower.cpp
        training/base/optimizers/schedulers/strategies/ClipLower.h
        training/base/optimizers/schedulers/strategies/CosineAnnealing.cpp
        training/base/optimizers/schedulers/strategies/CosineAnnealing.h
        training/base/postprocessing/GradientClipping.cpp
        training/base/postprocessing/GradientClipping.h
        training/base/postprocessing/GradientPostprocessor.h
        training/base/initializers/RandomUniformInitializer.cpp
        training/base/initializers/ConstantInitializer.cpp
        training/base/initializers/ConstantInitializer.h
        training/base/initializers/RandomNormInitializer.h
        training/base/initializers/XavierInitializer.h
        training/base/initializers/XavierInitializer.cpp
        training/base/initializers/RandomUniformInitializer.h
        training/base/initializers/IInitializer.h
        training/base/initializers/RandomNormInitializer.cpp
        training/base/common/TensorMem.h
        training/base/common/Tensor.h
        training/base/common/Tensor.cpp
        training/base/common/MemoryManager.h
        training/base/common/MemoryManager.cpp
        training/base/common/Conversions.h
        training/base/common/Random.cpp
        training/base/common/Common.h
        training/base/common/Common.cpp
        training/base/common/Random.h
        training/base/common/quantization/SymmetricQuantizer.cpp
        training/base/common/quantization/IQuantizer.h
        training/base/common/quantization/AffineQuantizer.cpp
        training/base/common/quantization/AffineQuantizer.h
        training/base/common/quantization/SymmetricQuantizer.h
        training/base/common/io/TensorStream.h
        training/base/common/io/TensorStream.cpp
        training/base/layers/activations/ReLUActivation.h
        training/base/layers/activations/GeLUActivation.cpp
        training/base/layers/activations/HSwishActivation.h
        training/base/layers/activations/impl/ReLUActivationImpl.cpp
        training/base/layers/activations/impl/SoftPlusActivationCPU.cpp
        training/base/layers/activations/impl/ReLUActivationImpl.h
        training/base/layers/activations/impl/SoftPlusActivationCPU.h
        training/base/layers/activations/impl/SigmoidActivationCPU.cpp
        training/base/layers/activations/impl/SigmoidActivationCPU.h
        training/base/layers/activations/impl/TanhActivationCPU.cpp
        training/base/layers/activations/impl/TanhActivationCPU.h
        training/base/layers/activations/impl/SwishActivationCPU.cpp
        training/base/layers/activations/impl/SwishActivationCPU.h
        training/base/layers/activations/impl/SoftMaxActivationCPU.cpp
        training/base/layers/activations/impl/SoftMaxActivationCPU.h
        training/base/layers/activations/impl/LeakyReLUActivationCPU.cpp
        training/base/layers/activations/impl/LeakyReLUActivationCPU.h
        training/base/layers/activations/impl/GeLUActivationCPU.cpp
        training/base/layers/activations/impl/GeLUActivationCPU.h
        training/base/layers/activations/impl/HSigmoidActivationCPU.cpp
        training/base/layers/activations/impl/HSigmoidActivationCPU.h
        training/base/layers/activations/impl/HSwishActivationCPU.cpp
        training/base/layers/activations/impl/HSwishActivationCPU.h
        training/base/layers/activations/ReLUActivation.cpp
        training/base/layers/activations/HSigmoidActivation.h
        training/base/layers/activations/GeLUActivation.h
        training/base/layers/activations/SoftPlusActivation.h
        training/base/layers/activations/HSwishActivation.cpp
        training/base/layers/activations/LogSoftMaxActivation.cpp
        training/base/layers/activations/SoftPlusActivation.cpp
        training/base/layers/activations/SigmoidActivation.h
        training/base/layers/activations/SigmoidActivation.cpp
        training/base/layers/activations/LogSoftMaxActivation.h
        training/base/layers/activations/SoftMaxActivation.cpp
        training/base/layers/activations/SoftMaxActivation.h
        training/base/layers/activations/TanhActivation.h
        training/base/layers/activations/TanhActivation.cpp
        training/base/layers/activations/SwishActivation.h
        training/base/layers/activations/HSigmoidActivation.cpp
        training/base/layers/activations/SwishActivation.cpp
        training/base/layers/activations/LeakyReLUActivation.cpp
        training/base/layers/activations/LeakyReLUActivation.h
        training/base/layers/parameters/RandomTensorLayerParams.cpp
        training/base/layers/parameters/ZoneoutParams.cpp
        training/base/layers/parameters/TensorParams.h
        training/base/layers/parameters/TilingParameters.cpp
        training/base/layers/parameters/DataParams.cpp
        training/base/layers/parameters/ScaleParams.cpp
        training/base/layers/parameters/TilingParameters.h
        training/base/layers/parameters/DropoutParams.cpp
        training/base/layers/parameters/RandomSelectParams.cpp
        training/base/layers/parameters/RollLayerParams.cpp
        training/base/layers/parameters/RandomChoiceParams.cpp
        training/base/layers/parameters/FixedBiasParams.h
        training/base/layers/parameters/FixedBiasParams.cpp
        training/base/layers/parameters/SoftPlusActivationParams.cpp
        training/base/layers/parameters/trainable/TransformerParams.h
        training/base/layers/parameters/trainable/LocationSensitiveAttentionParams.cpp
        training/base/layers/parameters/trainable/LayerNormParams.h
        training/base/layers/parameters/trainable/TransposedConvolution2DParams.h
        training/base/layers/parameters/trainable/DynamicConvolutionAttentionParams.h
        training/base/layers/parameters/trainable/LSTMCellParams.cpp
        training/base/layers/parameters/trainable/LocationSensitiveAttentionParams.h
        training/base/layers/parameters/trainable/BatchnormParams.cpp
        training/base/layers/parameters/trainable/TransposedConvolution1DParams.h
        training/base/layers/parameters/trainable/DynamicConvolutionAttentionParams.cpp
        training/base/layers/parameters/trainable/TrainablePool2DParams.h
        training/base/layers/parameters/trainable/Convolution1DParams.cpp
        training/base/layers/parameters/trainable/TransformerParams.cpp
        training/base/layers/parameters/trainable/Convolution2DParams.cpp
        training/base/layers/parameters/trainable/MultiHeadAttentionParams.cpp
        training/base/layers/parameters/trainable/LayerNormParams.cpp
        training/base/layers/parameters/trainable/LSTMParams.h
        training/base/layers/parameters/trainable/TrainableParams.h
        training/base/layers/parameters/trainable/Convolution2DParams.h
        training/base/layers/parameters/trainable/LinearParams.h
        training/base/layers/parameters/trainable/LSTMParams.cpp
        training/base/layers/parameters/trainable/BatchnormParams.h
        training/base/layers/parameters/trainable/BahdanauAttentionParams.h
        training/base/layers/parameters/trainable/TransposedConvolution1DParams.cpp
        training/base/layers/parameters/trainable/EmbeddingParams.cpp
        training/base/layers/parameters/trainable/TransposedConvolution2DParams.cpp
        training/base/layers/parameters/trainable/MultiHeadAttentionParams.h
        training/base/layers/parameters/trainable/Convolution1DParams.h
        training/base/layers/parameters/trainable/LinearParams.cpp
        training/base/layers/parameters/trainable/BahdanauAttentionParams.cpp
        training/base/layers/parameters/trainable/LSTMCellParams.h
        training/base/layers/parameters/trainable/EmbeddingParams.h
        training/base/layers/parameters/trainable/TrainablePool2DParams.cpp
        training/base/layers/parameters/trainable/GRUCellParams.cpp
        training/base/layers/parameters/trainable/GRUCellParams.h
        training/base/layers/parameters/trainable/GRUParams.cpp
        training/base/layers/parameters/trainable/GRUParams.h
        training/base/layers/parameters/trainable/GRUFusedGatesCalcParams.cpp
        training/base/layers/parameters/trainable/GRUFusedGatesCalcParams.h
        training/base/layers/parameters/trainable/LSTMFusedGatesCalcParams.cpp
        training/base/layers/parameters/trainable/LSTMFusedGatesCalcParams.h
        training/base/layers/parameters/BasicParameters.cpp
        training/base/layers/parameters/FakeQuantParams.h
        training/base/layers/parameters/ZoneoutParams.h
        training/base/layers/parameters/RollLayerParams.h
        training/base/layers/parameters/DropoutParams.h
        training/base/layers/parameters/SlicingParams.cpp
        training/base/layers/parameters/ElementWiseComparisonLayerParams.h
        training/base/layers/parameters/IndexFillLayerParams.cpp
        training/base/layers/parameters/SoftPlusActivationParams.h
        training/base/layers/parameters/DataParams.h
        training/base/layers/parameters/RepeatInterleaveParams.h
        training/base/layers/parameters/ScaleParams.h
        training/base/layers/parameters/IndexFillLayerParams.h
        training/base/layers/parameters/LayerParameters.h
        training/base/layers/parameters/ClampLayerParams.cpp
        training/base/layers/parameters/RandomSelectParams.h
        training/base/layers/parameters/RepeatInterleaveParams.cpp
        training/base/layers/parameters/TensorParams.cpp
        training/base/layers/parameters/ClampLayerParams.h
        training/base/layers/parameters/ElementWiseComparisonLayerParams.cpp
        training/base/layers/parameters/RandomTensorLayerParams.h
        training/base/layers/parameters/SlicingParams.h
        training/base/layers/parameters/FakeQuantParams.cpp
        training/base/layers/parameters/BasicParameters.h
        training/base/layers/parameters/RandomChoiceParams.h
        training/base/layers/parameters/LeakyReLUParams.cpp
        training/base/layers/parameters/LeakyReLUParams.h
        training/base/layers/TrainableLayer.h
        training/base/layers/BroadcastingLayer.cpp
        training/base/layers/BroadcastingLayer.h
        training/base/layers/basic/ExpLayer.cpp
        training/base/layers/basic/DropoutLayer.h
        training/base/layers/basic/MatMulLayer.h
        training/base/layers/basic/ReshapeLayer.cpp
        training/base/layers/basic/BatchExpanderLayer.cpp
        training/base/layers/basic/ConcatenationLayer.h
        training/base/layers/basic/RandomTensorLayer.cpp
        training/base/layers/basic/FakeQuantLayer.cpp
        training/base/layers/basic/RoundLayer.h
        training/base/layers/basic/ReduceMeanLayer.cpp
        training/base/layers/basic/RandomTensorLayer.h
        training/base/layers/basic/RandomChoiceLayer.h
        training/base/layers/basic/ExpLayer.h
        training/base/layers/basic/ScaleLayer.h
        training/base/layers/basic/ScaleLayer.cpp
        training/base/layers/basic/MaxPoolLayer.h
        training/base/layers/basic/GlobalAveragePoolLayer.h
        training/base/layers/basic/ClampLayer.h
        training/base/layers/basic/ArgExtremumLayer.h
        training/base/layers/basic/PositionalEncoding.cpp
        training/base/layers/basic/SqrtLayer.h
        training/base/layers/basic/impl/DynamicDepthwiseConvolution2DLayerCPU.cpp
        training/base/layers/basic/impl/DynamicDepthwiseConvolution2DLayerCPU.h
        training/base/layers/basic/impl/BatchExpanderLayerCPU.cpp
        training/base/layers/basic/impl/ReverseLayerCPU.cpp
        training/base/layers/basic/impl/ReshapeLayerCPU.h
        training/base/layers/basic/impl/BatchExpanderLayerCPU.h
        training/base/layers/basic/impl/NonZeroMaskLayerCPU.h
        training/base/layers/basic/impl/ReshapeLayerCPU.cpp
        training/base/layers/basic/impl/ElementWiseCompareLayerCPU.h
        training/base/layers/basic/impl/PositionalEncodingCPU.h
        training/base/layers/basic/impl/RoundLayerCPU.cpp
        training/base/layers/basic/impl/NonZeroMaskLayerCPU.cpp
        training/base/layers/basic/impl/TileLayerCPU.cpp
        training/base/layers/basic/impl/ReverseLayerCPU.h
        training/base/layers/basic/impl/ScaleLayerImpl.cpp
        training/base/layers/basic/impl/RoundLayerCPU.h
        training/base/layers/basic/impl/ElementWiseCompareLayerCPU.cpp
        training/base/layers/basic/impl/ScaleLayerImpl.h
        training/base/layers/basic/impl/TileLayerCPU.h
        training/base/layers/basic/impl/PositionalEncodingCPU.cpp
        training/base/layers/basic/impl/MaskedFillLayerCPU.cpp
        training/base/layers/basic/impl/MaskedFillLayerCPU.h
        training/base/layers/basic/impl/LabelSmoothingCPU.cpp
        training/base/layers/basic/impl/LabelSmoothingCPU.h
        training/base/layers/basic/impl/ExpLayerCPU.cpp
        training/base/layers/basic/impl/ExpLayerCPU.h
        training/base/layers/basic/impl/SlicerLayerCPU.cpp
        training/base/layers/basic/impl/SlicerLayerCPU.h
        training/base/layers/basic/impl/ConcatenationLayerCPU.cpp
        training/base/layers/basic/impl/ConcatenationLayerCPU.h
        training/base/layers/basic/impl/CumSumLayerCPU.cpp
        training/base/layers/basic/impl/CumSumLayerCPU.h
        training/base/layers/basic/impl/ClampLayerCPU.cpp
        training/base/layers/basic/impl/ClampLayerCPU.h
        training/base/layers/basic/impl/SqrtLayerCPU.cpp
        training/base/layers/basic/impl/SqrtLayerCPU.h
        training/base/layers/basic/impl/RSqrtLayerCPU.cpp
        training/base/layers/basic/impl/RSqrtLayerCPU.h
        training/base/layers/basic/impl/SquareLayerCPU.cpp
        training/base/layers/basic/impl/SquareLayerCPU.h
        training/base/layers/basic/impl/LogLayerCPU.cpp
        training/base/layers/basic/impl/LogLayerCPU.h
        training/base/layers/basic/impl/FixedBiasLayerCPU.cpp
        training/base/layers/basic/impl/FixedBiasLayerCPU.h
        training/base/layers/basic/impl/L2NormLayerCPU.cpp
        training/base/layers/basic/impl/L2NormLayerCPU.h
        training/base/layers/basic/impl/L2SquaredNormLayerCPU.cpp
        training/base/layers/basic/impl/L2SquaredNormLayerCPU.h
        training/base/layers/basic/impl/RandomTensorLayerCPU.cpp
        training/base/layers/basic/impl/RandomTensorLayerCPU.h
        training/base/layers/basic/impl/ReduceExtremumLayerCPU.cpp
        training/base/layers/basic/impl/ReduceExtremumLayerCPU.h
        training/base/layers/basic/impl/ReduceArithmeticLayerCPU.cpp
        training/base/layers/basic/impl/ReduceArithmeticLayerCPU.h
        training/base/layers/basic/impl/SplitterLayerCPU.cpp
        training/base/layers/basic/impl/SplitterLayerCPU.h
        training/base/layers/basic/impl/TransposeLayerCPU.cpp
        training/base/layers/basic/impl/TransposeLayerCPU.h
        training/base/layers/basic/impl/TensorLayerCPU.cpp
        training/base/layers/basic/impl/TensorLayerCPU.h
        training/base/layers/basic/impl/SelectLayerCPU.cpp
        training/base/layers/basic/impl/SelectLayerCPU.h
        training/base/layers/basic/impl/RandomSelectLayerCPU.cpp
        training/base/layers/basic/impl/RandomSelectLayerCPU.h
        training/base/layers/basic/impl/MatMulLayerCPU.cpp
        training/base/layers/basic/impl/MatMulLayerCPU.h
        training/base/layers/basic/impl/LossWrapperHelperLayerCPU.cpp
        training/base/layers/basic/impl/LossWrapperHelperLayerCPU.h
        training/base/layers/basic/impl/ElementWiseSubLayerCPU.cpp
        training/base/layers/basic/impl/ElementWiseSubLayerCPU.h
        training/base/layers/basic/impl/ElementWiseSumLayerCPU.cpp
        training/base/layers/basic/impl/ElementWiseSumLayerCPU.h
        training/base/layers/basic/impl/ElementWiseDivLayerCPU.cpp
        training/base/layers/basic/impl/ElementWiseDivLayerCPU.h
        training/base/layers/basic/impl/ElementWiseMulLayerCPU.cpp
        training/base/layers/basic/impl/ElementWiseMulLayerCPU.h
        training/base/layers/basic/impl/DropoutLayerCPU.cpp
        training/base/layers/basic/impl/DropoutLayerCPU.h
        training/base/layers/basic/impl/AveragePoolLayerCPU.cpp
        training/base/layers/basic/impl/AveragePoolLayerCPU.h
        training/base/layers/basic/MatMulLayer.cpp
        training/base/layers/basic/L2SquaredNormLayer.cpp
        training/base/layers/basic/ElementWiseCompareLayer.cpp
        training/base/layers/basic/LabelSmoothing.cpp
        training/base/layers/basic/ReduceNonZeroLayer.cpp
        training/base/layers/basic/SplitterLayer.h
        training/base/layers/basic/ConvertPrecisionLayer.cpp
        training/base/layers/basic/ConvertPrecisionLayer.h
        training/base/layers/basic/ClampLayer.cpp
        training/base/layers/basic/SelectLayer.h
        training/base/layers/basic/ReverseLayer.h
        training/base/layers/basic/SlicerLayer.cpp
        training/base/layers/basic/ElementWiseCompareLayer.h
        training/base/layers/basic/ElementWiseSubLayer.h
        training/base/layers/basic/trainable/TransposedConvolution1DLayer.h
        training/base/layers/basic/trainable/Batchnorm.cpp
        training/base/layers/basic/trainable/Convolution1DLayer.cpp
        training/base/layers/basic/trainable/impl/Convolution1DLayerCPU.cpp
        training/base/layers/basic/trainable/impl/ConvolutionDepthwiseLayerCPU.cpp
        training/base/layers/basic/trainable/impl/ConvolutionDepthwiseLayerCPU.h
        training/base/layers/basic/trainable/impl/BatchnormCPU.cpp
        training/base/layers/basic/trainable/impl/BatchnormCPU.h
        training/base/layers/basic/trainable/impl/EmbeddingCPU.cpp
        training/base/layers/basic/trainable/impl/EmbeddingCPU.h
        training/base/layers/basic/trainable/impl/LayerNormCPU.cpp
        training/base/layers/basic/trainable/impl/LayerNormCPU.h
        training/base/layers/basic/trainable/impl/LayerNorm2dCPU.cpp
        training/base/layers/basic/trainable/impl/LayerNorm2dCPU.h
        training/base/layers/basic/trainable/impl/Convolution1DLayerCPU.h
        training/base/layers/basic/trainable/TransposedConvolution2DLayer.cpp
        training/base/layers/basic/trainable/LayerNorm.cpp
        training/base/layers/basic/trainable/LayerNorm2D.cpp
        training/base/layers/basic/trainable/TransposedConvolution1DLayer.cpp
        training/base/layers/basic/trainable/Embedding.h
        training/base/layers/basic/trainable/ConvolutionDepthwiseLayer.h
        training/base/layers/basic/trainable/Convolution1DLayer.h
        training/base/layers/basic/trainable/LinearLayer.cpp
        training/base/layers/basic/trainable/LinearLayer.h
        training/base/layers/basic/trainable/LayerNorm.h
        training/base/layers/basic/trainable/LayerNorm2D.h
        training/base/layers/basic/trainable/Batchnorm.h
        training/base/layers/basic/trainable/Convolution2DLayer.h
        training/base/layers/basic/trainable/TransposedConvolution2DLayer.h
        training/base/layers/basic/trainable/Embedding.cpp
        training/base/layers/basic/trainable/ConvolutionDepthwiseLayer.cpp
        training/base/layers/basic/trainable/Convolution2DLayer.cpp
        training/base/layers/basic/LogLayer.h
        training/base/layers/basic/ElementWiseMaxLayer.h
        training/base/layers/basic/TileLayer.h
        training/base/layers/basic/LabelSmoothing.h
        training/base/layers/basic/ReduceArithmeticLayer.cpp
        training/base/layers/basic/LogLayer.cpp
        training/base/layers/basic/ElementWiseMinLayer.h
        training/base/layers/basic/SelectLayer.cpp
        training/base/layers/basic/L2NormLayer.cpp
        training/base/layers/basic/SquareLayer.h
        training/base/layers/basic/LossWrapperHelperLayer.h
        training/base/layers/basic/SqrtLayer.cpp
        training/base/layers/basic/FakeQuantLayer.h
        training/base/layers/basic/ArgMaxLayer.h
        training/base/layers/basic/ElementWiseSumLayer.h
        training/base/layers/basic/RSqrtLayer.cpp
        training/base/layers/basic/GlobalAveragePoolLayer.cpp
        training/base/layers/basic/DataLayer.cpp
        training/base/layers/basic/ReduceSumLayer.cpp
        training/base/layers/basic/CumSumLayer.cpp
        training/base/layers/basic/TransposeLayer.h
        training/base/layers/basic/ReduceBatchMeanLayer.h
        training/base/layers/basic/ReverseLayer.cpp
        training/base/layers/basic/ElementWiseMulLayer.cpp
        training/base/layers/basic/DynamicDepthwiseConvolution2DLayer.h
        training/base/layers/basic/ReduceMinLayer.h
        training/base/layers/basic/TileLayer.cpp
        training/base/layers/basic/ElementWiseSumLayer.cpp
        training/base/layers/basic/BatchExpanderLayer.h
        training/base/layers/basic/ReduceExtremumLayer.cpp
        training/base/layers/basic/AveragePoolLayer.h
        training/base/layers/basic/L2SquaredNormLayer.h
        training/base/layers/basic/MaskedFillLayer.cpp
        training/base/layers/basic/ReduceExtremumLayer.h
        training/base/layers/basic/ReduceNonZeroLayer.h
        training/base/layers/basic/ReduceMaxLayer.h
        training/base/layers/basic/MaxPoolLayer.cpp
        training/base/layers/basic/ReduceSumLayer.h
        training/base/layers/basic/ReduceArithmeticLayer.h
        training/base/layers/basic/SplitterLayer.cpp
        training/base/layers/basic/ReduceStdLayer.cpp
        training/base/layers/basic/SquareLayer.cpp
        training/base/layers/basic/L2NormLayer.h
        training/base/layers/basic/IndexFillLayer.cpp
        training/base/layers/basic/ReshapeLayer.h
        training/base/layers/basic/ElementWiseSubLayer.cpp
        training/base/layers/basic/PaddingLayer.h
        training/base/layers/basic/ReduceMeanLayer.h
        training/base/layers/basic/ElementWiseDivLayer.h
        training/base/layers/basic/DataLayer.h
        training/base/layers/basic/MaskedFillLayer.h
        training/base/layers/basic/DynamicDepthwiseConvolution2DLayer.cpp
        training/base/layers/basic/RepeatInterleaveLayer.cpp
        training/base/layers/basic/FixedBiasLayer.cpp
        training/base/layers/basic/ReduceStdLayer.h
        training/base/layers/basic/FixedBiasLayer.h
        training/base/layers/basic/TensorLayer.cpp
        training/base/layers/basic/ElementWiseMulLayer.h
        training/base/layers/basic/PaddingLayer.cpp
        training/base/layers/basic/ConcatenationLayer.cpp
        training/base/layers/basic/ArgMinLayer.h
        training/base/layers/basic/ElementWiseExtremumLayer.h
        training/base/layers/basic/TensorLayer.h
        training/base/layers/basic/SlicerLayer.h
        training/base/layers/basic/ElementWiseDivLayer.cpp
        training/base/layers/basic/IndexFillLayer.h
        training/base/layers/basic/RSqrtLayer.h
        training/base/layers/basic/TransposeLayer.cpp
        training/base/layers/basic/RollLayer.h
        training/base/layers/basic/RandomSelectLayer.h
        training/base/layers/basic/RandomSelectLayer.cpp
        training/base/layers/basic/CumSumLayer.h
        training/base/layers/basic/DropoutLayer.cpp
        training/base/layers/basic/NonZeroMaskLayer.h
        training/base/layers/basic/RandomChoiceLayer.cpp
        training/base/layers/basic/RollLayer.cpp
        training/base/layers/basic/RepeatInterleaveLayer.h
        training/base/layers/basic/ReduceBatchMeanLayer.cpp
        training/base/layers/basic/LossWrapperHelperLayer.cpp
        training/base/layers/basic/AveragePoolLayer.cpp
        training/base/layers/basic/PositionalEncoding.h
        training/base/layers/composite/LeNet.h
        training/base/layers/composite/LeNet.cpp
        training/base/layers/composite/DynamicConvolutionAttentionLayer.cpp
        training/base/layers/composite/Transformer.cpp
        training/base/layers/composite/MultiHeadAttention.h
        training/base/layers/composite/BahdanauMonotonicAttentionLayer.cpp
        training/base/layers/composite/BahdanauMonotonicAttentionLayer.h
        training/base/layers/composite/AdditiveAttentionLayer.h
        training/base/layers/composite/BahdanauMonotonicAttentionInternalLayers.h
        training/base/layers/composite/LocationSensitiveAttentionInternalLayers.h
        training/base/layers/composite/rnn/BidirectionalLSTMFunc.h
        training/base/layers/composite/rnn/impl/ZeroOutputLayerCPU.h
        training/base/layers/composite/rnn/impl/ZeroOutputLayerCPU.cpp
        training/base/layers/composite/rnn/impl/GRUFusedGatesCalcLayerCPU.h
        training/base/layers/composite/rnn/impl/GRUFusedGatesCalcLayerCPU.cpp
        training/base/layers/composite/rnn/impl/LSTMFusedGatesCalcLayerCPU.h
        training/base/layers/composite/rnn/impl/LSTMFusedGatesCalcLayerCPU.cpp
        training/base/layers/composite/rnn/ZoneoutLayer.h
        training/base/layers/composite/rnn/ZoneoutLayer.cpp
        training/base/layers/composite/rnn/ZeroOutputLayer.cpp
        training/base/layers/composite/rnn/LSTMCellLayer.h
        training/base/layers/composite/rnn/LSTMCellLayer.cpp
        training/base/layers/composite/rnn/BidirectionalLSTMFunc.cpp
        training/base/layers/composite/rnn/LSTMLayer.h
        training/base/layers/composite/rnn/LSTMLayer.cpp
        training/base/layers/composite/rnn/LSTMFusedLayer.h
        training/base/layers/composite/rnn/LSTMFusedLayer.cpp
        training/base/layers/composite/rnn/ZeroOutputLayer.h
        training/base/layers/composite/rnn/GRUCellLayer.h
        training/base/layers/composite/rnn/GRUCellLayer.cpp
        training/base/layers/composite/rnn/GRULayer.h
        training/base/layers/composite/rnn/GRULayer.cpp
        training/base/layers/composite/rnn/GRUFusedGatesCalcLayer.h
        training/base/layers/composite/rnn/GRUFusedGatesCalcLayer.cpp
        training/base/layers/composite/rnn/GRUFusedLayer.h
        training/base/layers/composite/rnn/GRUFusedLayer.cpp
        training/base/layers/composite/rnn/LSTMFusedGatesCalcLayer.h
        training/base/layers/composite/rnn/LSTMFusedGatesCalcLayer.cpp
        training/base/layers/composite/AttentionLayer.cpp
        training/base/layers/composite/Transformer.h
        training/base/layers/composite/AttentionLayer.h
        training/base/layers/composite/MultiHeadAttention.cpp
        training/base/layers/composite/AdditiveAttentionLayer.cpp
        training/base/layers/composite/LocationSensitiveAttentionLayer.h
        training/base/layers/composite/LocationSensitiveAttentionLayer.cpp
        training/base/layers/composite/DynamicConvolutionAttentionInternalLayers.h
        training/base/layers/composite/AttentionMaskCreatorLayer.h
        training/base/layers/composite/DynamicConvolutionAttentionLayer.h
        training/base/layers/BasicImpl.h
        training/base/layers/TrainableLayer.cpp
        training/base/layers/BasicLayer.h
        training/base/impl/basic/trainable/LinearLayerImpl.cpp
        training/base/impl/basic/trainable/LinearLayerImpl.h
        training/base/impl/basic/trainable/LinearLayerCPUFP32.cpp
        training/base/impl/basic/trainable/LinearLayerCPUFP32.h
        training/base/impl/basic/trainable/LinearLayerCPUFP16.h
        training/base/impl/basic/trainable/LinearLayerCPUFP16.cpp
        training/base/impl/basic/trainable/Convolution2DLayerCPU.h
        training/base/impl/basic/trainable/Convolution2DLayerCPU.cpp
        training/base/impl/composite/rnn/LSTMFusedLayerCPU.h
        training/base/impl/composite/rnn/LSTMFusedLayerCPU.cpp
        training/base/impl/composite/rnn/LSTMFusedLayerCPUFP16.h
        training/base/impl/composite/rnn/LSTMFusedLayerCPUFP16.cpp
        training/base/impl/composite/rnn/GRUFusedLayerCPU.h
        training/base/impl/composite/rnn/GRUFusedLayerCPU.cpp
        training/base/loss/scaling/ScalingStrategy.h
        training/base/loss/BinaryCrossEntropyLoss.cpp
        training/base/loss/BinaryCrossEntropyLoss.h
        training/base/loss/CrossEntropyLoss.cpp
        training/base/loss/CrossEntropyLoss.h
        training/base/loss/DivisorLossHelperLayer.h
        training/base/loss/KLDivLoss.cpp
        training/base/loss/KLDivLoss.h
        training/base/loss/L1Loss.cpp
        training/base/loss/L1Loss.h
        training/base/loss/LossWrapper.h
        training/base/loss/MSELoss.cpp
        training/base/loss/MSELoss.h
        training/base/loss/NegativeLogLikelihoodLoss.cpp
        training/base/loss/NegativeLogLikelihoodLoss.h
        training/base/loss/SigmoidCrossEntropyLoss.cpp
        training/base/loss/SigmoidCrossEntropyLoss.h
        training/base/loss/SoftmaxCrossEntropyLoss.cpp
        training/base/loss/SoftmaxCrossEntropyLoss.h
        training/base/loss/impl/BinaryCrossEntropyLossCPU.cpp
        training/base/loss/impl/BinaryCrossEntropyLossCPU.h
        training/base/loss/impl/CrossEntropyLossCPU.cpp
        training/base/loss/impl/CrossEntropyLossCPU.h
        training/base/loss/impl/DivisorLossHelperLayerCPU.cpp
        training/base/loss/impl/DivisorLossHelperLayerCPU.h
        training/base/loss/impl/KLDivLossCPU.cpp
        training/base/loss/impl/KLDivLossCPU.h
        training/base/loss/impl/L1LossCPU.cpp
        training/base/loss/impl/L1LossCPU.h
        training/base/loss/impl/MSELossCPU.cpp
        training/base/loss/impl/MSELossCPU.h
        training/base/loss/impl/NegativeLogLikelihoodLossCPU.cpp
        training/base/loss/impl/NegativeLogLikelihoodLossCPU.h
        training/base/loss/impl/SigmoidCrossEntropyLossCPU.cpp
        training/base/loss/impl/SigmoidCrossEntropyLossCPU.h
        training/base/loss/impl/SoftmaxCrossEntropyLossCPU.cpp
        training/base/loss/impl/SoftmaxCrossEntropyLossCPU.h
        training/base/impl/ImplFactory.h
        training/base/impl/ImplFactory.cpp
        training/base/tools/NamedTuple.h
        training/base/tools/DataTransformations.h
        training/base/tools/ElementSequence.cpp
        training/base/tools/Utils.cpp
        training/base/tools/DataTransformations.cpp
        training/base/tools/Utils.h
        training/base/tools/ElementSequence.h
        training/base/common/NetworkParameters.h
        training/base/common/NetworkParameters.cpp
        )